練習1 - 尋找水仙花數 (Narcissistic number)。
水仙花數是指一個 3 位數,它的每個位上的數字的3次方和等於它本身(例如:1^3 + 5^3+ 3^3 = 153)。
for i in range (100,1000):
hundred = int(i / 100)
ten = int((i % 100) / 10)
one = i % 10
if (hundred ** 3) + (ten ** 3) + (one ** 3) == i:
print(i)
練習2 - 尋找完美數 (Perfect number)。
完美數是指它的所有的真因子(除了自身以外的因數)和等於它本身(例如:1、2、3、6,除去它本身 6 外,1 + 2 + 3 = 6)。
for i in range (2,10000):
sum = 0
for j in range (1,i):
if i % j == 0:
sum += j
if sum == i:
print(i)
練習3 - 百錢百雞問題。
雞公一隻價值五元,雞母一隻價值三元,小雞三隻價值一元。百元買百雞,問雞公、雞母、小雞各幾隻?
sum = 0
for i in range (0,20):
for j in range (0,33):
if 5 * i + 3 * j + (100 - i - j) / 3 == 100:
print("公雞 %d 隻,母雞 %d 隻,小雞 %d 隻 " % (i,j,(100 - i - j)))
練習4 - 斐波那契數列 (Fibonacci sequence)。
斐波那契數列是指這樣一個數列1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765........
如果設 F(n) 為該數列的第 n 項(n∈N*),那麼這句話可以寫成如下形式:F(n) = F(n-1) + F(n-2)
a = 0
b = 1
for i in range (20):
a ,b = b ,a + b
print(a, end = ' ')
練習5 - Craps賭博遊戲。
一個簡單的賭博遊戲,遊戲規則如下:玩家擲兩個骰子,點數為 1 到 6,如果第一次點數和為 7 或 11,則玩家勝,如果點數和為 2、3 或 12,則玩家輸,如果和為其它點數,則記錄第一次的點數和,然後繼續擲骰,直至點數和等於第一次擲出的點數和,則玩家勝,如果在這之前擲出了點數和為 7,則玩家輸。
from random import randint
again = False
first = randint(1,6) + randint(1,6)
print('第一次點數和 %d' % first)
if first == 7 or first == 11:
print('Win')
elif first == 2 or first == 3 or first == 12:
print('Lose')
else:
again = True
while again:
new = randint(1,6) + randint(1,6)
print('現在點數和 %d' % new)
if new == first:
again = False
print('Win')
elif new == 7:
again = False
print('Lose')
else:
again = True